Extension是一種Type延伸的靜態方法
舉例而言,我想在原本的string加上一個靜態方法叫IsPalindrome
必須要宣告一個傳入自己物件的參數
就能在Type後面直接.方法呼叫
範例如下
public static class StringExtensions{
public static bool IsPalindrome(this string s){...}
}
string a = "hello world";
if(s.IsPalindrome()){...}
注意以下事項
1.不要輕易加上extension mehtods,尤其是沒有source code的情況下
2.避免System.Object物件的extension,如下
public static class SomeExtensions{
static void SomeMethod(this object o){...}
}
3.extension mehtods與原生型態不要放在同一個namespace
4.不要用有名稱一樣的extension mehtods,即使是放在不同的namespace